﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using turnos.core.modelo;

namespace turnos.escritorio
{
    public partial class frmAltaDeMatriz : Form
    {
        private MatrizDeTurnos _matriz;

        public frmAltaDeMatriz()
        {
            InitializeComponent();
        }

        public MatrizDeTurnos Matriz
        {
            get
            {
                if (_matriz == null)
                    _matriz = new MatrizDeTurnos();
                return _matriz;
            }
            set { _matriz = value; }
        }

        private void btnCalcular_Click(object sender, EventArgs e)
        {
            byte cant_puestos = 0;
            byte cant_horas = 0;
            int cant_tiempo = 0;
            DateTime fecha = DateTime.Today;
            DateTime hora = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0);

            try
            {
                cant_puestos = byte.Parse(txtCantidadPuestos.Text);
                cant_horas = byte.Parse(txtCantidadHorasLaborales.Text);
                cant_tiempo = int.Parse(txtTiempoMinimo.Text);
                fecha = dtpFecha.Value;
                hora = dtpHora.Value;
                try
                {
                    seteo_valores(cant_puestos, cant_horas, cant_tiempo, fecha, hora);
                    txtCantidadTurnosJornada.Text = Matriz.CantidadTurnosJornada.ToString();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error al calcular" + ex.Message, "Problema");
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al calcular, valores incorrectos", "Problema");
            }
            
        }

        private void seteo_valores(byte cantidadPuestos, byte cantidadHorasLaborales, int TiempoMinimo, DateTime fecha, DateTime horainicio)
        {
            Matriz.CantHorasLab = cantidadHorasLaborales;
            Matriz.CantPuestos = cantidadPuestos;
            Matriz.TiempoMinimo = TiempoMinimo;
            Matriz.Fecha = fecha;
            Matriz.HoraInicio = horainicio;
        }

        private void txtCantidadTurnosJornada_TextChanged(object sender, EventArgs e)
        {

        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            byte cant_puestos = 0;
            byte cant_horas = 0;
            int cant_tiempo = 0;
            DateTime fecha = DateTime.Today;
            DateTime hora = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0);

            try
            {
                cant_puestos = byte.Parse(txtCantidadPuestos.Text);
                cant_horas = byte.Parse(txtCantidadHorasLaborales.Text);
                cant_tiempo = int.Parse(txtTiempoMinimo.Text);
                fecha = dtpFecha.Value;
                hora = dtpHora.Value;
                try
                {
                    seteo_valores(cant_puestos, cant_horas, cant_tiempo,fecha,hora);
                    Modelo.TurnosModelo.TurnosC.GuardarMatriz(Matriz, Modelo.TurnosModelo.Usuario.Usuario);
                    MessageBox.Show("Se guardó correctamente", "Confirmación");
                    this.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error al grabar " + ex.Message, "Problema");
                }
                
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al grabar, valores incorrectos", "Problema");
            }

        }

        private void frmAltaDeMatriz_Load(object sender, EventArgs e)
        {
            DateTime fecha = DateTime.Today;
            DateTime hora = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0);

            dtpFecha.Value = fecha;
            dtpHora.Value = hora;
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
